package com.itheima.d1_arrays;
/*
       根据compareTo方法的返回值进行指定元素位置
            如果返回值为负数，表示当前存入的元素是较小值，存左边
            如果返回值为0，表示当前存入的元素相等 , 位置不动
            如果返回值为正数，表示当前存入的元素是较大值，存右边
        this表示当前要存储的元素 , o表示的是已经存在的元素 , 会拿到要排序的元素从左往右依次比较进行存储位置
 */
public class Student implements Comparable<Student>{
    private String name;
    private double height;
    private int age;

    // 指定比较规则
    // this  o
    @Override
    public int compareTo(Student o) {
     /*   // 约定1：认为左边对象 大于 右边对象 请您返回正整数
        // 约定2：认为左边对象 小于 右边对象 请您返回负整数
        // 约定3：认为左边对象 等于 右边对象 请您一定返回0
         return this.age - o.age == 0 ? this.height - o.height > 0 ? - 1 : 1 : this.age - o.age; // 升序
//        return o.age - this.age; // 降序*/
        int i = this.age - o.age;
        if (i==0){
            return (int) (this.height-o.height);
        }
        return this.age-o.age;
    }

    public Student() {
    }

    public Student(String name, double height, int age) {
        this.name = name;
        this.height = height;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", height=" + height +
                ", age=" + age +
                '}';
    }
}
